Add E57 import and pose write-back to step 2 - #515
Merged
Merged
Conversation
Load E57 point clouds into multi_view_tls_registration (step 2) and write registered poses back into the source .e57 files. - Vendor Apache Xerces-C (v3.3.0) and libE57Format (v3.2.0) as git submodules, built statically from source; cmake/FindXercesC.cmake redirects libE57Format's find_package(XercesC) at the in-tree target so no system package is needed. - core/e57_utils: load_e57() decodes every Data3D block (cartesian or spherical coords, intensity, RGB, timestamps, embedded pose); rewrite_e57_poses() copies a file verbatim (points, all point fields, line groups, 2D images) while replacing selected Data3D poses, moving attached images by the same delta. - Step 2 GUI: "Open e57" menu item (pre-session and in File > Open) builds one PointCloud per scan using the embedded pose as the initial pose; E57 loads never write a session/result folder. "Update e57 poses" writes the current registered poses back, either overwriting the originals or as <name>_updated.e57. - PointCloud gains non-serialized e57_source_path / e57_scan_index for the write-back; File > Open is also reachable once a session is loaded. New mandeye::e57io::save_e57() writes a list of scans (borrowed point/ intensity/colour/timestamp buffers + a pose each) to a fresh multi-block .e57 file, streaming points in 1M-point chunks. Cartesian coordinates are written as double FloatNodes; intensity as 0..65535, colour as 0..255. Step 2 gains a File > "Save session as e57" item: one Data3D block per point cloud, points in scan-local frame, each block carrying m_pose (+ session offset) as its file-level pose. Round-trips through load_e57 (geometry, intensity, colour presence and pose verified). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Load E57 point clouds into multi_view_tls_registration (step 2) and write registered poses back into the source .e57 files.
-Added submodules for Xerces and E57.
-Added option to load e57 to step2
-Added option to update e57 header
-Added option to save e57 from step2
-Added option to save e57 from lidar_trajectory_viewer.
Proof: